/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jforum.util;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jforum.DAO.UserDAO;
import jforum.domain.User;

/**
 *
 * @author Вадим
 */
public class AuthModule {

    /**
     * Функция, анализирующая cookie и сравнивающая их со значением в БД.
     * @param cookies
     * @return Пользователь из БД (null если нет такого пользователя)
     * @throws java.lang.Exception
     */
    public static User getUser(Cookie[] cookies) throws Exception{
        String login=null, pass=null;
        Cookie cookie = null;
        //Cookie cookies[] = request.getCookies();
        if (cookies != null) {
            for(int i=0, n=cookies.length; i < n; i++) {
                cookie = cookies[i];
                if (cookie.getName().equals("susername") ) {
                    login=cookie.getValue();
                }
                if (cookie.getName().equals("spassword") ) {
                    pass=cookie.getValue();
                }
            }
        }
        return AuthModule.getFromDB(login, pass);
    }

    private static User getFromDB(String login, String pass) throws Exception {
        if (login!=null && pass!=null) {
            DBConnector conn=new DBConnector();
            UserDAO dao=new UserDAO(conn);

            User user=dao.Load(login);
            // если такого пользователя нет или он еще не активен
            if (user==null || user.active <= 0) {
                return null;
            }

            if (pass.equals(user.getPass())) {
                return user;
            }
        }
        return null;
    }
}
